#ifndef __CLI_TTY_H__
#define __CLI_TTY_H__

/*********************************************************************
 * INCLUDES
 */

#ifdef __cplusplus
extern "C" {
#endif

#if (SAL_CLI == _ENABLE)

/*********************************************************************
 *  EXTERNAL VARIABLES
 */

/*********************************************************************
 * MACROS
 */

/*********************************************************************
 * TYPES
 */

typedef struct _tty_base
{
    int32_t (*pfTTYGets)(char *pData, uint32_t uiLen);
    int32_t (*pfTTYPuts)(char *pData, uint32_t uiLen);
} TTY_BASE_S;

/*********************************************************************
 * FUNCTIONS
 */

/**
 *   @Description: TTY初始化
 *   @param : NA
 *   @return: NA
 */
void TTY_Init(void);

/**
 *   @Description: TTY去初始化
 *   @param : NA
 *   @return: NA
 */
void TTY_DeInit(void);

/**
 *   @Description: 获取命令行
 *   @param : pData - 出参，命令行缓存
 *   @param : uiLen - Èë²Î£¬缓存长度
 *   @return: _OK/_ERR
 */
int32_t TTY_CliGets(char *pData, uint32_t uiLen);

/**
 *   @Description: 发送命令
 *   @param : pData - 入参，发送的命令行数据
 *   @param : uiLen - 入参，发送的命令行数据长度
 *   @return: _OK/_ERR
 */
int32_t TTY_CliPuts(char *pData, uint32_t uiLen);

#endif  // SAL_CLI == _ENABLE

#ifdef __cplusplus
}
#endif /* end of __cplusplus */

#endif

/************************************** The End Of File **************************************/


